Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Open SQL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Open_SQL"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Open_SQL rootpage-Open_SQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Open SQL</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Open SQL</b> ist ein proprietäres SQL-Derivat, das vom Unternehmen <a href="SAP" title="SAP">SAP</a> stammt. SAP beabsichtigt damit, einen einheitlichen <a href="SQL" title="SQL">SQL</a>-Dialekt für alle von SAP unterstützten Datenbanken anzubieten. Open SQL ist Bestandteil der Programmiersprache <a href="ABAP" title="ABAP">ABAP</a>. Es gibt aber auch eine (weniger bedeutsame) Version für <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>. Die Benutzung von Open SQL setzt einen SAP ABAP oder Java Application Server voraus. Außerdem müssen alle verwendeten <a href="Datenbanktabelle" title="Datenbanktabelle">Datenbanktabellen</a> im SAP-eigenen Dictionary erstellt werden. Ziel von Open SQL ist es, dass die verwendeten SQL-Befehle auf allen Datenbanken das gleiche Ergebnis liefern. Zu diesem Zweck enthält der jeweilige Application Server einen eigenen SQL-<a href="Parser" title="Parser">Parser</a> und einen Umsetzer, der das Open-SQL-Kommando in den jeweiligen nativen Datenbankdialekt umwandelt.
</p>

<div class="mw-heading mw-heading2"><h2 id="Funktionalität_und_Umfang"><span id="Funktionalit.C3.A4t_und_Umfang"></span>Funktionalität und Umfang</h2></div>
<p>In neueren Versionen enthält Open SQL für ABAP große Teile des SQL-92-Standards mit vielen Erweiterungen. So werden beispielsweise Arithmetische Ausdrücke, CASE ... ENDCASE, einige SQL-Funktionen und Common Table Expressions unterstützt. Durch Emulation innerhalb des Application Servers können auch Funktionen angeboten werden, die nicht alle von SAP unterstützten Datenbanken unterstützen. Ein Beispiel sind hier z.&nbsp;B. Streams und Lokatoren, mit denen große LOB-Felder auf der Datenbank abschnittsweise gelesen und geschrieben werden können.
</p><p>Der Umfang von Open SQL für Java ist deutlich geringer.
</p>
<div class="mw-heading mw-heading2"><h2 id="Besonderheiten">Besonderheiten</h2></div>
<ul><li>Lückenlose Integration in das SAP(ABAP)-Typsystem, unabhängig vom Typsystem der Datenbank.</li>
<li>Statischer Syntaxcheck zur Compilezeit (etwa im Gegensatz zu anderen Datenbankschnittstellen, wie <a href="JDBC" class="mw-redirect" title="JDBC">JDBC</a>).</li>
<li>Dynamisches und halbdynamisches SQL (Teile des SQL Statements können dynamisch zur Laufzeit übergeben werden. Die statischen Anteile können trotzdem zur Compilezeit überprüft werden).</li>
<li>SAP eigene Erweiterungen, z.&nbsp;B. FOR ALL ENTRIES (Join von Datenbanktabellen mit sogenannten internen Tabellen, d.&nbsp;h. Variablen).</li>
<li>Tabellen können im Application Server gepuffert und dann mittels Open SQL ohne Datenbankzugriff gelesen werden. Zu diesem Zweck enthält der Application Server eine (<a href="In-Memory-Datenbank" title="In-Memory-Datenbank">in memory</a>) Datenbankengine (mit stark reduziertem Umfang).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Unterstützte_Datenbanken"><span id="Unterst.C3.BCtzte_Datenbanken"></span>Unterstützte Datenbanken</h2></div>
<p>In aktuellen SAP-Releases werden <a href="SAP_HANA" title="SAP HANA">SAP HANA</a>, <a href="Oracle" title="Oracle">Oracle</a>, <a href="MaxDB" class="mw-redirect" title="MaxDB">MaxDB</a>, <a href="DB2" class="mw-redirect" title="DB2">DB2</a>, <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> und <a href="Sybase" title="Sybase">Sybase</a> ASE unterstützt. Historisch wurde auch <a href="Informix" title="Informix">Informix</a> unterstützt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Native_SQL">Native SQL</h2></div>
<p>Mit Native SQL bezeichnet SAP die SQL-Dialekte der zugrunde liegenden Datenbanken. Ein Beispiel wäre das SQL der Oracle-Datenbank, welches ebenso wie DB2 oder MaxDB einen anderen Sprachumfang als Open SQL besitzt. Die <a href="ABAP" title="ABAP">ABAP</a>-Laufzeitumgebung setzt dann die Open-SQL-Kommandos in die entsprechenden Native-SQL-Kommandos um. Mittels ADBC bzw. <a href="JDBC" class="mw-redirect" title="JDBC">JDBC</a> oder <a href="AMDP_(Informatik)" title="AMDP (Informatik)">AMDP (Informatik)</a> (nur ABAP) können in ABAP resp. Java auch direkt Native-SQL-Kommandos abgesetzt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Schlüsselwörter"><span id="Schl.C3.BCsselw.C3.B6rter"></span>Schlüsselwörter</h2></div>
<p>Der Sprachvorrat von Open SQL besteht aus einer Untermenge der Schlüsselwörter des Standard-<a href="SQL" title="SQL">SQL</a>, der mit einigen SAP-spezifischen Elementen angereichert wurde. Folgende Schlüsselwörter sind in Open SQL verwendbar:
</p>
<ul><li>SELECT, ENDSELECT</li>
<li>INSERT</li>
<li>MODIFY</li>
<li>UPDATE</li>
<li>DELETE</li>
<li>OPEN CURSOR, CLOSE CURSOR</li>
<li>FETCH</li>
<li>WITH (seit ABAP Kernel 749)</li></ul>
<p>Open SQL enthält keine Kommandos der <a href="Data_Definition_Language" title="Data Definition Language">Data Definition Language</a>. Mit Open-SQL-Methoden können keine Tabellen oder Views angelegt oder verändert werden. Dies ist nur über das ABAP bzw. Java Dictionary möglich.
</p>
<div class="mw-heading mw-heading2"><h2 id="Systemvariablen">Systemvariablen</h2></div>
<p>Zwei Systemvariablen, die zur Rückgabe von Werten verwendet werden, werden von den Open-SQL-Kommandos unterstützt und gehören zum Sprachvorrat von Open SQL:
</p>
<dl><dt>SY-SUBRC</dt>
<dd>Rückgabewert des zuletzt aufgerufenen Kommandos.</dd>
<dt>SY-DBCNT</dt>
<dd>Anzahl der Datensätze, die vom zuletzt aufgerufenen SQL-Kommando verarbeitet wurden.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><span class="cite"><a rel="nofollow" class="external text" href="https://help.sap.com/viewer/fe24b0146c551014891ad42d6b2789e5/7.02.22/de-DE/fceb3969358411d1829f0000e829fbfe.html"><i>Open SQL | SAP Help-Portal.</i></a> SAP,<span class="Abrufdatum"> abgerufen am 14.&nbsp;Juni 2020</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AOpen+SQL&amp;rft.title=Open+SQL+%7C+SAP+Help-Portal&amp;rft.description=Open+SQL+%7C+SAP+Help-Portal&amp;rft.identifier=https%3A%2F%2Fhelp.sap.com%2Fviewer%2Ffe24b0146c551014891ad42d6b2789e5%2F7.02.22%2Fde-DE%2Ffceb3969358411d1829f0000e829fbfe.html&amp;rft.publisher=SAP">&nbsp;</span></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-10-24" href="https://de.wikipedia.org/wiki/?title=Open_SQL&amp;oldid=238459428">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>